﻿
namespace SistemaLogistica.DataAccess
{
    using System.Collections.Generic;
    using System.Data;
    using System.Data.Common;
    using SistemaLogistica.Business.Entities;

    public class DetalleSubastaData : BaseDataAccess
    {
        private DetalleSubastaData() { }

        private readonly static DetalleSubastaData instancia = new DetalleSubastaData();

        public static DetalleSubastaData Instancia
        {
            get { return instancia; }
        }

        public List<DetalleSubasta> ListarPorSubasta(int idSubasta)
        {
            List<DetalleSubasta> detalle = new List<DetalleSubasta>();
            DbCommand command = db.GetStoredProcCommand("GetDetalleSubastaByIdSubasta");
            db.AddInParameter(command, "idSubasta", DbType.Int32, idSubasta);

            using (IDataReader dr = db.ExecuteReader(command))
            {
                while (dr.Read())
                {
                    detalle.Add(new DetalleSubasta
                    {
                        IdSubasta = dr.GetInt32(dr.GetOrdinal("IdSubasta")),
                        IdBien = dr.GetInt32(dr.GetOrdinal("IdBien")),
                        Cantidad = dr.GetDecimal(dr.GetOrdinal("Cantidad")),
                        Estado = dr.GetString(dr.GetOrdinal("Estado")),
                        MontoInicial = dr.GetDecimal(dr.GetOrdinal("MontoInicial")),
                        BienPatrimonial = BienPatrimonialData.Instancia.ObtenerPorID(dr.GetInt32(dr.GetOrdinal("IdBien")))
                    });
                }
            }
            return detalle;
        }
    }
}
